Falling Back on Executable Specifications

نویسندگان

  • Hesam Samimi
  • Ei Darli Aung
  • Todd D. Millstein
چکیده

We describe a new approach to employing specifications for software reliability. Rather than only using specifications to validate implementations, we additionally employ specifications as a reliable alternative to those implementations. Our approach, which we call Plan B, performs dynamic contract checking of methods. However, instead of halting the program upon a contract violation, we employ a constraint solver to automatically execute the specification in order to allow the program to continue properly. This paper describes Plan B as well as its instantiation in an extension to Java with executable specifications that we call PBnJ (Plan B in Java). We present the design of PBnJ by example and describe its implementation, which leverages the Kodkod relational constraint solver. We also describe our experience using the language to enhance the reliability and functionality of several existing Java applications.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Making specifications executable - Using IPTES Meta-IV

This article discusses the extra effort required to make specifications executable. With an origin in essential (but in general non-executable) specification techniques and specification language constructs the limitations of writing specifications in an executable language are discussed. The (executable) example specifications are written in IPTES Meta-IV which is a subset of BSI/VDM-SL.

متن کامل

Executable Specifications for Java Programs

In this thesis, we present a unified environment for running declarative specifications in the context of an imperative object-oriented programming language. Specifications are Alloy-like, written in first-order relational logic with transitive closure, and the imperative language for this purpose is Java. By being able to mix imperative code with executable declarative specifications, the user...

متن کامل

Specifications are (preferably) executable

In this paper I will argue for executable specifications by showing that non-executable formal specifications can be made executable on almost the same level of abstraction and without essentially changing their structure. No new algorithms have to be introduced to get executability. In many cases the combination of property-orientation and search results in specifications based on the generate...

متن کامل

Validating Avionics Conceptual Architectures with Executable Specifications

Current avionics systems specifications, developed after conceptual design, have a high degree of uncertainty. Since specifications are not sufficiently validated in the early development process and no executable specification exists at aircraft level, system designers cannot evaluate the impact of their design decisions at aircraft or aircraft application level. At the end of the development ...

متن کامل

Flexible incremental development by integrating specification and code

This paper describes the use of executable specifications to ease incremental development, by providing more flexibility regarding the order in which modules are implemented. In this approach, the architect provides a specification for each module in the module architecture view. While specifications must precisely describe the interactions among modules, they may abstract some of the functiona...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010